추천 도서 "딱 한 줄로 파이썬 제대로 코딩하기" (협찬 아님)
얇지만 무게있는 책이다. 리스트 컴프리헨션과 람다등을 이용해 더 파이써닉한 코드를 작성하는 법을 다룬다. 파이썬 필독서 급으로 추천한다.
기술서의 코드를 슥슥 넘겨 읽는 편이 많지만 이 책은 각 코드를 사고 실험 방식으로 머리 속에서 돌려보며 읽어야 하는 고통과 깨달음이 있다. 그래서 얇지만 완독까지는 시간이 좀 더 걸린다.
numpy 파트는 특히 빠르게 읽기 어렵다. numpy 숙련자가 아니라서 그렇다. 차원과 축방향을 근육에 체화하고 나면, 리스트 컴프리헨션을 다룰 때 처럼 일기 쓰듯 코딩이 가능할 것 같다.
후반부의 머신러닝, 정규표현식등은 응용 파트라서 오히려 빠르게 읽을 수 있다. 특히 머신러닝 파트는 머신러닝을 다른 기회로 학습한 적이 있다면 요약서로 훌륭하다. 딥러닝 미만 머신러닝의 정수가 대부분 있다. 두꺼운 책들 대신 곁에 꽂아두면 된다.
마지막 알고리즘 파트 몇 페이지는 람다-리스트 컴프리헨션-함수형의 궁극기를 다룬다.
그건 그렇고.
PHP가 언어의 장단점과 별개로 커뮤니티의 흥망이 있었듯이, 파이썬도 약간 비슷한 흐름이 있는 것 같다.
먼저 파이썬은 저마다의 숙련도가 있다. 예를 들어 수많은 라이브러리와 고급 기술(클래스, 메타 프로그래밍, 데코레이터, pydantic을 중심으로 한 모델 주입 기법 등등)을 섭렵한 사람을 숙련자라고 평가하는 것이 당연하지만 기본 기능만으로도 오랜 세월 장인의 반열에 오른 사람들도 가끔 있다.
쉽고 대중적인 언어이므로 커뮤니티는 으레 그렇듯이 난장판이라, PHP의 그 시절을 연상할 수도 있으나 파이썬 생태계는 그럭저럭 순항하는 것 같다.
파이써닉이라는 용어를 해석하는 방식은 이미 공감대가 확립되어 있다. import this의 그것이다. 그러나 받아들이는 자세에 따라 개발자들의 이상과 상충하는 면이 있다. 예컨데 코드가 짧다고 쉽고 간결한 코드는 아니지만 흑마법사의 아우라를 표현하고 싶은 유혹이 일렁일 때도 있다.
예를 들어 람다를 익힌 후 어떻게든 람다를 쳐발쳐발 하고 싶은 시즌이 있다. 귀도가 종신독재자에서 자발적으로 내려온 대입 표현식의 이슈도 거기에서 나왔을지 모른다. 람다의 한 줄 코드로 불가능한 부분을 대입 표현식으로 대부분 해소 가능하다. 그런데 이것이 간결하냐 아니냐는 또 다른 문제다. 간결한 경우도 있고 해석하기 어려울 때도 있다. 이 람다는 파이써닉의 람다인가 흑마법사의 아우라를 과시하고 싶은 람다인가?
인간은 보통 위에서 아래로, 좌에서 우로 코드를 사고한다. 위아래가 길거나 좌우가 길면 두뇌가 좆기 힘들다. 한 줄 코딩은 위아래를 짧게 만들어주지만 좌우를 길게 만들기도 한다.
또한 순차적 혹은 절차적으로 흐르는 인간 두뇌의 사고 흐름을 뒤섞을 때가 많다. 위->아래, 좌->우가 흐름순인데 사용하는 모국어의 특성과도 좌우 흐름이 연관이 있을 수도 있다. 안타깝게도 프로그램 언어들은 대부분 영어권 개발자들이 만들었다. 한글 변수가 가능하다고 언어 흐름까지 같지는 않다.
아무튼,
파이썬의 역사를 제대로 읽어본 적이 없어서 알지는 못하지만 귀도의 철학은 어쩌면 이런들 어떠하리 저런들 어떠하리 쉽고 간결하면 장땡일세였을지도 모른다.
뭐 대충 교훈 + 소감은,
그건 그렇고, (억지로 10개 채움)
마소지 초창기엔 원라인 코딩 컨테스트가 있었다는데 내용을 알지는 못한다. 신체장애로 초등학교도 다니지 않은 정내권님 (아래아 한글, 드림위즈 등)이 수상한 적이 있다는 사실만 알고 있다. 나는 정내권님의 한글 라이브러리 코드를 보고 제대로 된 코딩 수련을 시작했다.